Electronic data processing requires storing structures of data. In general, such data stored in such structures is called a DATABASE. A number of methods are available for this purpose. Most such methods assume a predefined structure type called RECORD. A record describes an object or an event with a number of ATTRIBUTES connected with it. An attribute is a concept expected to receive contents. According to tradition the attributes are contextually connected with a record type and hence are not self-contained carriers of information. In a database, data is stored according to record definitions. Each record type reflects a LOGICAL FILE to contain objects or events being described according to the record definition. A database is a set of such files, fulfilling a certain purpose. A DATABASE SYSTEM is a set of general methods, preferably implemented with programmed software, with the purpose of defining, maintaining, retrieving, and, to some extent, interpreting data in a database.
A common feature of most database systems is that they effectively can access data on the computer's SECONDARY DATA STORAGE (e.g. hard disk). The secondary data storage of a computer uses BLOCK-addressing when accessing data, and is suitable for permanent storing of data. To obtain effective use of secondary data storage, the possibilities of modifying the database definitions must be restricted.
Some structure types are not suitable for traditional database systems. They depend on the computer's PRIMARY DATA STORAGE (e.g. Random Access Memory) to obtain effective access to data. The primary data storage is BYTE-addressed and very fast. However, the primary data storage is not suitable for large databases or permanent data storage. DYNAMIC RECORD TYPES is an example of such data types. A dynamic record type can be defined and redefined without affecting existing programs or data. For this type of structures, access mechanisms and context are normally implemented as part of the application program. To achieve effective access to such data, all data need to be accessed in the primary data storage, whereas the secondary data storage is exclusively used for permanent storing of the data.
Program products storing large quantities of data need to access data in the secondary data storage. For this reason they are limited to fixed record definitions. Hence, in the process of meeting needs for increased software functionality, record definitions have to be enlarged and associated procedures have to be updated or added successively. For this reason standard software tends to get out of proportion. This phenomenon is well illustrated by standard application software for business administration (Business systems). The software flexibility is increased by adding new program modules, each reflecting a new aspect of the business. However flexible the software, the user has to comply with the software properties and limitations. The possibilities of adjusting the software to suit the needs of the user are truly limited. Large portions of the business rules are predefined in the software and can be developed only marginally. Many phenomenona appearing naturally in a certain business are excluded from being described within the frame of the software.
A solid reason for this is that the basis for describing objects, events and the domain of rules is determined by the predefined data structure and the corresponding software. Therefore, a more flexible system for physical storing of data, less dependent on predefined data structures and procedures is desirable.
Further, the current methods for storing data occupy large memory space, as the storing density normally is very low. This is due to the fact that the record definitions are excessive in comparison with the needs of the user.
Other problems with the current database systems are long data retrieval times, difficulties with modifications of the database and the interface to it. Further, combining data from different databases is complicated.